#ifndef ROBOTMECUNIT
#define ROBOTMECUNIT
#include "robotCommon.h"

#ifdef __cplusplus 
extern "C"
{
#endif

GENESDK_API HRESULT SetRobToolName(void *handle, const char *name, const char * toolName);
GENESDK_API HRESULT GetRobToolName(void *handle, const char *name, char * toolName);
GENESDK_API HRESULT SetRobWobjName(void *handle, const char *name, const char * WobjName);
GENESDK_API HRESULT GetRobWobjName(void *handle, const char *name, char * wobjName);
GENESDK_API HRESULT SetPayload(void *handle, const char *name, const char * payLoadName);
GENESDK_API HRESULT GetPayload(void *handle, const char *name, char * payLoadName);
GENESDK_API HRESULT SetCoordSystem(void *handle, const char *name, CoordSystem coordSy);
GENESDK_API HRESULT GetCoordSystem(void *handle, const char *name, CoordSystem* coordSy);
GENESDK_API HRESULT SetRobJogMode(void *handle, const char *name, HelperJogMode jogMode);
GENESDK_API HRESULT GetRobJogMode(void *handle, const char *name, HelperJogMode* jogMode);
GENESDK_API HRESULT GetRobDHPara(void *handle, const char *name, float robDHParas[8], float transPre[7]);
GENESDK_API HRESULT GetRobURDHPara(void *handle, const char *name, float transPre[7], float robThetaHomePos[7], float offsetPara[7], float lengthPara[8]);
GENESDK_API HRESULT GetMotorSpeedLimit(void *handle, const char *name, MotorSpeed **maxSpeedList, int *num);
GENESDK_API HRESULT GetMechUnitLimit(void *handle, const char *name, JointsLimit **limits, int *num);
GENESDK_API HRESULT GetServoInfo(void *handle, const char *name, unsigned int axisNo, ServoInfo *info);
GENESDK_API HRESULT GetServoVendorID(void *handle, const char *name, unsigned int axisNo, char VID[64], char PCode[64], char FWVer[64], char HWVer[64]);
GENESDK_API HRESULT ClearServoError(void *handle, const char *name, unsigned int axisNo);
GENESDK_API HRESULT ClearServoMultiValue(void *handle, const char *name, unsigned int axisNo);
GENESDK_API HRESULT SetServoKpInfo(void *handle, const char *name, unsigned int axisNo, int value);
GENESDK_API HRESULT SetServoKvInfo(void *handle, const char *name, unsigned int axisNo, int value);
GENESDK_API HRESULT SetServoKiInfo(void *handle, const char *name, unsigned int axisNo, int value);
GENESDK_API HRESULT SetServoHomeEncoder(void *handle, const char *name, int axisNo, int* encoder);
GENESDK_API HRESULT GetServoHomeEncoder(void *handle, const char *name, int *axisNo, int** encoder);
GENESDK_API HRESULT SetServoJointAngle(void *handle, const char *name, int axisNo, int* angles);
GENESDK_API HRESULT GetServoJointAngle(void *handle, const char *name, int *axisNo, int** angles);
GENESDK_API HRESULT SetCaliSingleTurn(void *handle, const char *name, int axisNo, int* turns);
GENESDK_API HRESULT GetCaliSingleTurn(void *handle, const char *name, int *axisNo, int** turns);
GENESDK_API HRESULT SetUnitLimitRight(void *handle, const char *name, const int bTmp);
GENESDK_API HRESULT GetUnitLimitRight(void *handle, const char *name, int *bTmp);
GENESDK_API HRESULT GetServoSingleTurn(void *handle, const char *name, int *axisNo, int** turns);
GENESDK_API HRESULT GetServoValues(void *handle, const char *name, int *axisNo, int** servoValues);
GENESDK_API HRESULT GetServoStatus(void *handle, const char *name, ServoState *servoStatus);
GENESDK_API HRESULT TeachRobTarget(void *handle, const char *name, const char *toolName, const char *wobjName, CoordSystem coord, HelperRobTarget *robTarget);
GENESDK_API HRESULT TeachJointTarget(void *handle, const char *name, HelperRobJointTarget *jointTarget);
GENESDK_API HRESULT SetBaseFrame(void *handle, const char *name, Pose* pose);
GENESDK_API HRESULT GetBaseFrame(void *handle, const char *name, Pose* pose);
GENESDK_API HRESULT GetBaseFrameAttachedAxis(void *handle, const char *name, char attachName[NET_NAME_MAX]);
GENESDK_API HRESULT StartDragTeach(void *handle, const char *name);
GENESDK_API HRESULT StopDragTeach(void *handle, const char *name);
GENESDK_API HRESULT StartDragPathRecord(void *handle, const char *name, const char *fileName);
GENESDK_API HRESULT StopDragPathRecord(void *handle, const char *name);
GENESDK_API HRESULT ClearAllError(void* handle, const char* name);

#ifdef __cplusplus
}
#endif
#endif //ROBOTMECUNIT